Token Nedir? Access Token ve Refresh Token Nasıl Çalışır? (2026 Rehberi)
Token nedir?
Token, kullanıcı kimliğini doğrulamak ve yetkilendirme yapmak için kullanılan dijital bir anahtardır. Özellikle JWT, API güvenliği ve modern authentication sistemlerinde yaygın olarak kullanılır.
Token nedir ve ne işe yarar? Modern web ve mobil uygulamalarda kullanıcı kimliğini güvenli şekilde taşımak için token tabanlı authentication kullanılır.
- Access token ve refresh token farkı
- Token nasıl çalışır?
- JWT ile authentication süreci
- Token güvenliği nasıl sağlanır?
- “Beni hatırla” yapısı güvenli şekilde nasıl kurulur?
Spring Boot tarafındaki güvenlik yapısını öğrenmek için Spring Security rehberine de göz atabilirsiniz.
Token Nedir ve Ne İşe Yarar?
Token, kullanıcı kimliğini doğrulamak ve sistemlere güvenli erişim sağlamak için kullanılan dijital bir veridir. Kullanıcı adı ve şifreyi her istekte tekrar göndermek yerine token kullanılarak daha güvenli ve stateless bir yapı oluşturulur.
Özellikle modern API mimarilerinde token yapısı, authentication ve authorization işlemlerinin merkezinde yer alır. Bu nedenle JWT, access token ve refresh token kavramlarını anlamak oldukça önemlidir.
Token Türleri
1. Access Token
- Kısa ömürlüdür, genellikle 15–30 dakika geçerlidir.
- API çağrılarında kullanılır.
Authorization: Bearer <token>header’ı ile gönderilir.- Kullanıcı kimliği, rol ve izin bilgileri taşıyabilir.
2. Refresh Token
- Daha uzun ömürlüdür; günler veya haftalar geçerli olabilir.
- Access token süresi dolduğunda yeni token almak için kullanılır.
- Rotation uygulanırsa güvenlik seviyesi ciddi şekilde artar.
3. Diğer Token Türleri
ID Token (OpenID Connect), CSRF Token ve bazı senaryolarda cancellation token gibi daha spesifik amaçlara hizmet eden token türleri de bulunur.
Access Token → API erişimi için kullanılır.
Refresh Token → Yeni access token üretmek için kullanılır.
Access ve Refresh Token Akışı
Modern authentication akışı genellikle aşağıdaki şekilde çalışır:
- Kullanıcı giriş yapar ve sunucu access token ile refresh token üretir.
- İstemci, her API isteğinde access token gönderir.
- Access token süresi dolduğunda sunucu genellikle 401 Unauthorized döner.
- İstemci, refresh token ile yeni access token ister.
- Sunucu yeni token üretir ve eski refresh token’ı geçersiz hale getirir.
- Kullanıcı işlemlerine kesinti yaşamadan devam eder.
Login
↓
Access Token + Refresh Token
↓
API Request with Access Token
↓
Access Token Expired
↓
Refresh Token Request
↓
New Access Token
Token Saklama ve “Beni Hatırla” Özelliği
Token saklama yöntemi, güvenliğin en kritik parçalarından biridir. Özellikle “beni hatırla” senaryosunda refresh token’ın güvenli şekilde saklanması gerekir.
- Access token mümkünse memory/state içinde tutulmalıdır.
- Refresh token ise güvenli storage alanında saklanmalıdır.
| Platform | Önerilen Saklama Yöntemi |
|---|---|
| Web | HttpOnly + Secure Cookie |
| iOS | Keychain |
| Android | EncryptedSharedPreferences / Keystore |
Pseudo Kod
// Login Success
storeSecure('refresh_token', refreshToken);
store('access_token', accessToken);
// API Call
if (isAccessValid()) useAccessToken();
else refreshAccessToken();
// App Restart
if (refreshTokenExists()) refreshAccessToken();
else showLoginScreen();
Token Güvenliği ve Best Practices (2026)
Access Token Süresi
Genellikle kısa tutulmalıdır. 15–30 dakika arası yaygın ve güvenli bir yaklaşımdır.
Refresh Token Rotation
Her kullanımda yeni refresh token üretilmeli, eski token geçersiz hale getirilmelidir. Bu yöntem replay saldırılarına karşı daha güçlü koruma sağlar.
Güvenli Saklama
- Web uygulamalarında
HttpOnlyveSecurecookie tercih edilmelidir. localStoragekullanımı XSS riskleri nedeniyle dikkat gerektirir.- Mobil uygulamalarda platformun güvenli saklama çözümleri kullanılmalıdır.
Ek Güvenlik Katmanları
- Refresh endpoint’leri için rate limiting uygulanmalıdır.
- Revocation list veya blacklist yapısı düşünülmelidir.
- Tüm token trafiği HTTPS üzerinden taşınmalıdır.
Avantajlar ve Dezavantajlar
Avantajlar
- Stateless mimari sayesinde ölçeklenebilirlik sağlar.
- Modern web ve mobil uygulamalarla uyumludur.
- Kullanıcı deneyimini bozmadan güvenli authentication akışı sunar.
Dezavantajlar / Riskler
- Refresh token çalınırsa ciddi güvenlik riski oluşabilir.
- Yanlış saklama yöntemleri XSS veya token theft riskini artırabilir.
- Rotation, blacklist ve revocation gibi yapılar mimari karmaşıklık getirebilir.
Sık Sorulan Sorular (FAQs)
Token nedir kısaca?
Token, kullanıcı kimliğini doğrulamak ve erişim yetkisini taşımak için kullanılan dijital bir anahtardır.
Access token ile refresh token arasındaki fark nedir?
Access token API erişimi için kullanılır ve kısa ömürlüdür. Refresh token ise yeni access token üretmek için kullanılır ve daha uzun ömürlüdür.
JWT bir token mıdır?
Evet. JWT, en yaygın kullanılan token formatlarından biridir.
Refresh token çalınırsa ne olur?
Rotation ve blacklist sistemi uygulanıyorsa token iptal edilir. Gerekirse kullanıcı yeniden giriş yapar.
Token neden güvenli şekilde saklanmalıdır?
Yanlış saklanan token’lar ele geçirilirse, saldırgan kullanıcı adına işlem yapabilir.
Sonuç
Token tabanlı authentication, modern uygulamalarda güvenliğin temel yapı taşlarından biridir. Access token ve refresh token mantığını doğru kurmak, hem güvenlik hem de kullanıcı deneyimi açısından büyük fark yaratır.
JWT mantığını daha detaylı öğrenmek için JWT Nedir? içeriğine de göz atabilirsiniz.